/**
 * Notes: 系统控制器
 * Date: 2023-09-05 19:20:00 
 */

const BaseProjectController = require('./base_project_controller.js');
const SystemService = require('../service/system_service.js');

class SystemController extends BaseProjectController {

	/** 构造函数 */
	constructor() {
		super();
	}

	/**
	 * 检查数据库集合状态 [接口: system/check_db]
	 */
	async checkDb() {
		// 数据校验
		let rules = {
			collections: 'array|name=集合列表'
		};

		// 取得数据
		let input = this.validateData(rules);

		// 创建服务
		let service = new SystemService();

		// 检查数据库集合
		let result = await service.checkDbCollections(input.collections);

		return result;
	}

	/**
	 * 初始化数据库集合 [接口: system/init_db]
	 */
	async initDb() {
		// 权限检查(可添加额外的权限验证逻辑)
		try {
			const initCloudCollections = require('../init/init_cloud_collections.js');
			const result = await initCloudCollections.initCollections();
			return result;
		} catch (error) {
			console.error('初始化数据库集合失败:', error);
			return { code: 500, message: '初始化数据库集合失败:' + error.message };
		}
	}
}

module.exports = SystemController; 